from django.contrib.auth.models import Permission
from rest_framework.viewsets import ModelViewSet
from apps.meiduo_admin.utils import PageNum
from apps.meiduo_admin.serializers.permission import PermissionSerializer

"""

1:1
1:n
n:m

老师和学生

老师表
学生表
老师和学生的关系表

"""

#####################权限#################################

class PermissionModelViewset(ModelViewSet):
    """权限视图集"""
    serializer_class = PermissionSerializer  # 指定序列化器
    queryset = Permission.objects.all()  # 指定查询集
    pagination_class = PageNum  # 指定分页器

# 检查模型的数据
# python manage.py shell
# from django.contrib.auth.models import Permission
# Permission.objects.all()  # 查询所有权限数据
# Permission.objects.count()  # 查询权限数据的总数
# Permission.objects.first()  # 查询第一条权限数据
# Permission.objects.last()  # 查询最后一条权限数据
# Permission.objects.filter(codename='add_user')  # 根据权限代码名查询权限
# 查询序列化器
# from apps.meiduo_admin.serializers.permission import PermissionSerializer
# permission = Permission.objects.first()
# serializer = PermissionSerializer(permission)
# serializer.data  # 查看序列化后的数据

############ContentType 权限类型###################################
"""
所谓的权限 其实就是 对于模型的增删改查操作
我们需要确定对哪个模型 有 增删改查的权限


"""
# 检查模型的数据
# python manage.py shell
# from django.contrib.contenttypes.models import ContentType
# ContentType.objects.all()  # 查询所有内容类型数据
# ContentType.objects.count()  # 查询内容类型数据的总数
# ContentType.objects.first()  # 查询第一条内容类型数据
# ContentType.objects.last()  # 查询最后一条内容类型数据
# ContentType.objects.filter(model='user')  # 根据模型名称查询内容类型
# ContentType.objects.filter(app_label='users')  # 根据应用名称查询内容类型
# ContentType.objects.filter(model='user').first()  # 根据模型名称查询第一条内容类型数据
# ContentType.objects.filter(app_label='users').first()  # 根据应用名称查询第一条内容类型数据
# ContentType.objects.filter(model='user').last()  # 根据模型名称查询最后一条内容类型数据
# ContentType.objects.filter(app_label='users').last()  # 根据应用名称查询最后一条内容类型数据

from django.contrib.contenttypes.models import ContentType
from rest_framework.generics import ListAPIView
from apps.meiduo_admin.serializers.permission import ContentTypeModelSerializer

class ContentTypeListAPIView(ListAPIView):
    queryset = ContentType.objects.all()
    serializer_class = ContentTypeModelSerializer

############组管理################################################

from django.contrib.auth.models import Group
from apps.meiduo_admin.serializers.permission import GroupModelSerializer

class GroupModelViewSet(ModelViewSet):

    queryset = Group.objects.all()

    serializer_class = GroupModelSerializer

    pagination_class = PageNum


